1. Les clients de votre projet
Figure 1. Le client (qui va utiliser le logiciel)
Figure 2. Le prof (qui va contraindre le logiciel)
Figure 3. Le prof (qui va noter votre projet)
2. Cahier Des Charges Utilisateur
2.1. Késako
-
"Contrat" entre le client et vous
-
Qui est responsable de quoi (Client/MOA/MOE) ?
-
Contexte
-
Contraintes
-
Liste des fonctinnalités attendues
2.2. Extra-functional properties
Extra-functional properties are sometimes more important than functional ones…
2.3. Design
Quelques exemples de propriétés extra fonctionnelles…
2.4. Autre exemple
© Dinga
3. Pour votre Projet
3.1. Focus
-
build
-
3.3. Build
Parlons un peu de build…
Etude 2014 :
Figure 5. Ant vs Maven vs Gradle (source here)
Exemple de fichier Ant (cf. source)
<project xmlns:ivy="antlib:org.apache.ivy.ant" name="java-build-tools" default="jar">
<property name="src.dir" value="src"/>
...
<path id="lib.path.id">
<fileset dir="${lib.dir}" />
</path>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="lib.path.id"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}"/>
</target>
</project>
Exemple de fichier Maven (cf. source)
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.technologyconversations</groupId>
<artifactId>java-build-tools</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
</plugin>
</plugins>
</build>
</project>
Exemple de fichier Gradle (cf. source)
apply plugin: 'java'
apply plugin: 'checkstyle'
apply plugin: 'findbugs'
apply plugin: 'pmd'
version = '1.0'
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3'
}
3.4.
4. Exemple : génération de la doc
image: asciidoctor/docker-asciidoctor
variables:
GIT_SSL_NO_VERIFY: "1"
stages:
- 📦build
- 🦄test
html:
stage: 📦build
script:
- asciidoctor README.adoc -o index.html
artifacts:
paths:
- index.html
pdf_preview:
stage: 🦄test
when: manual
environment:
name: preview/$CI_COMMIT_REF_NAME
except:
- /master/
artifacts:
paths:
- README.pdf
expire_in: 1 week
script:
- asciidoctor-pdf README.adoc